/* ========================================================================= */
/* ------------------------------------------------------------------------- */
/*!
  \file			objdeflib.cc
  \date			Feb 2012
  \author		TNick

  \brief		Contains ...


*//*


 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Please read COPYING and README files in root folder
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
//
//
//
//
/*  INCLUDES    ------------------------------------------------------------ */

#include	"objdeflib.h"

#include	<objdeflib_internal.h>
#include	<session.h>

using namespace ObjD;

/*  INCLUDES    ============================================================ */
//
//
//
//
/*  DATA    ---------------------------------------------------------------- */


/*  DATA    ================================================================ */
//
//
//
//
/*  FUNCTIONS    ----------------------------------------------------------- */


/* ------------------------------------------------------------------------- */
void			ObjD::initialise				( void )
{
	if ( ObjD::def_ss != NULL )
	{
		Q_ASSERT_X( false, "ObjD", "Initialisation of already initialised instance." );
		delete ObjD::def_ss;
	}
	ObjD::def_ss = new Session();

}
/* ========================================================================= */

/* ------------------------------------------------------------------------- */
void			ObjD::terminate				( void )
{

	Q_ASSERT( def_ss != NULL );
	delete def_ss;
	def_ss = NULL;

}
/* ========================================================================= */


/* ------------------------------------------------------------------------- */
Session*		ObjD::createSession			( void )
{
	Session * new_ss = new Session();

	return new_ss;
}
/* ========================================================================= */

/* ------------------------------------------------------------------------- */
Session *		ObjD::currentSession			( void )
{
	return def_ss;
}
/* ========================================================================= */

/* ------------------------------------------------------------------------- */
void			ObjD::deleteSession			( Session * targ_ss )
{
	if ( def_ss == targ_ss )
	{
		Q_ASSERT_X(  false, "ObjD", "Attempt to delete default session" );
		return;
	}

	delete targ_ss;
}
/* ========================================================================= */

/* ------------------------------------------------------------------------- */
void			ObjD::makeSessionCurrent		( Session * targ_ss )
{
	if ( def_ss != targ_ss )
	{
		def_ss = targ_ss;
	}
}
/* ========================================================================= */

/*  FUNCTIONS    =========================================================== */
//
//
//
//
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
